From 211128fb7cb9e5d81bc35cd87a7d3048c43d9783 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 28 May 2019 22:34:47 +0000 Subject: [PATCH] inspector: Stop deriving from scrolled window --- gtk/inspector/general.c | 44 +- gtk/inspector/general.h | 5 +- gtk/inspector/general.ui | 883 +++++++++++++++--------------- gtk/inspector/misc-info.c | 37 +- gtk/inspector/misc-info.h | 4 +- gtk/inspector/misc-info.ui | 1033 ++++++++++++++++++------------------ gtk/inspector/visual.c | 44 +- gtk/inspector/visual.h | 4 +- gtk/inspector/visual.ui | 876 +++++++++++++++--------------- 9 files changed, 1524 insertions(+), 1406 deletions(-) diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c index d4d7857455..f492af2f0b 100644 --- a/gtk/inspector/general.c +++ b/gtk/inspector/general.c @@ -60,6 +60,8 @@ struct _GtkInspectorGeneralPrivate { + GtkWidget *swin; + GtkWidget *box; GtkWidget *version_box; GtkWidget *env_box; GtkWidget *display_box; @@ -88,7 +90,7 @@ struct _GtkInspectorGeneralPrivate GtkAdjustment *focus_adjustment; }; -G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorGeneral, gtk_inspector_general, GTK_TYPE_SCROLLED_WINDOW) +G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorGeneral, gtk_inspector_general, GTK_TYPE_WIDGET) static void init_version (GtkInspectorGeneral *gen) @@ -857,8 +859,8 @@ gtk_inspector_general_constructed (GObject *object) G_OBJECT_CLASS (gtk_inspector_general_parent_class)->constructed (object); - gen->priv->focus_adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (gen)); - gtk_container_set_focus_vadjustment (GTK_CONTAINER (gtk_bin_get_child (GTK_BIN (gen))), + gen->priv->focus_adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (gen->priv->swin)); + gtk_container_set_focus_vadjustment (GTK_CONTAINER (gen->priv->box), gen->priv->focus_adjustment); g_signal_connect (gen->priv->version_box, "keynav-failed", G_CALLBACK (keynav_failed), gen); @@ -869,6 +871,37 @@ gtk_inspector_general_constructed (GObject *object) g_signal_connect (gen->priv->device_box, "keynav-failed", G_CALLBACK (keynav_failed), gen); } +static void +measure (GtkWidget *widget, + GtkOrientation orientation, + int for_size, + int *minimum, + int *natural, + int *minimum_baseline, + int *natural_baseline) +{ + GtkInspectorGeneral *gen = GTK_INSPECTOR_GENERAL (widget); + + gtk_widget_measure (gen->priv->swin, + orientation, + for_size, + minimum, natural, + minimum_baseline, natural_baseline); +} + +static void +size_allocate (GtkWidget *widget, + int width, + int height, + int baseline) +{ + GtkInspectorGeneral *gen = GTK_INSPECTOR_GENERAL (widget); + + gtk_widget_size_allocate (gen->priv->swin, + &(GtkAllocation) { 0, 0, width, height }, + baseline); +} + static void gtk_inspector_general_class_init (GtkInspectorGeneralClass *klass) { @@ -877,7 +910,12 @@ gtk_inspector_general_class_init (GtkInspectorGeneralClass *klass) object_class->constructed = gtk_inspector_general_constructed; + widget_class->measure = measure; + widget_class->size_allocate = size_allocate; + gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/libgtk/inspector/general.ui"); + gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, swin); + gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, box); gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, version_box); gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, env_box); gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, display_box); diff --git a/gtk/inspector/general.h b/gtk/inspector/general.h index e397f3512e..9e3ce85785 100644 --- a/gtk/inspector/general.h +++ b/gtk/inspector/general.h @@ -32,13 +32,14 @@ typedef struct _GtkInspectorGeneralPrivate GtkInspectorGeneralPrivate; typedef struct _GtkInspectorGeneral { - GtkScrolledWindow parent; + GtkWidget parent; + GtkInspectorGeneralPrivate *priv; } GtkInspectorGeneral; typedef struct _GtkInspectorGeneralClass { - GtkScrolledWindowClass parent; + GtkWidgetClass parent_class; } GtkInspectorGeneralClass; G_BEGIN_DECLS diff --git a/gtk/inspector/general.ui b/gtk/inspector/general.ui index 05ad31ca86..349c2f49cf 100644 --- a/gtk/inspector/general.ui +++ b/gtk/inspector/general.ui @@ -1,92 +1,97 @@ + -